﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using COFE.Core.Utils;
using COFE.Core.Profile;
using COFE.Core;

namespace COFE.Core
{
    /// <summary>
    /// Represent a user, users have different user name, and may have different combination of directory volume.  
    /// Having multiple profiles allow server serving different users at a time.
    /// </summary>
    public interface IUserProfile //: IInternalUserProfile
    {
        /// <summary>
        /// Return username of the current manager.
        /// </summary>
        string UserName { get; }

        /// <summary>
        /// COFE version of System.IO.File.
        /// </summary>
        IFileServices File { get; }

        /// <summary>
        /// COFE version of System.IO.Directory.
        /// </summary>
        IDirectoryServices Directory { get; }        

        IVolumeManager Volumes { get; }

        /// <summary>
        /// Return a profile root directory that contains all volumes.
        /// </summary>
        IDirectoryInfo ProfileRootDirectory { get; }
                
        ITempManager TempManager { get; }

        IEntryListManager EntryListManager { get; }
    }
}
